﻿package com.firewolf.mybatis.likequery.drivers;

import java.io.IOException;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;

import com.firewolf.mybatis.likequery.beans.DUser;
import com.firewolf.mybatis.likequery.beans.UserQryCondition;
import com.firewolf.mybatis.likequery.utils.MyBatisUtil;

/**
 * 
 * @Description:
 * @Author: 刘兴
 * @Date : 2016年8月19日
 * @package : com.firewolf.mybatis.dynamicsql.drivers
 * @Java_Version : 1.7
 * @Version : 2016年8月19日下午2:40:17
 */
public class MainDriver {
	
	private SqlSession session = null;
	
	@Before
	public void init() throws IOException{
		session = MyBatisUtil.getSessionFactory("conf.xml").openSession();
	}
	
	/**
	 * @Description: 在java代码中拼接好模糊字符串传入进去
	 * @输入和输出示例：
	 * @思路：
	 */
	@Test
	public void testDynamicSql1(){
		String name = "o";
		name = name == null ? "" : name;
		List<DUser> users = session.selectList("dUserMapper.qryUser1", new UserQryCondition("%"+name+"%", 13, 19));
		System.out.println(users);
	}
	
	/**
	 * @Description: 用$符号替换#来进行模糊匹配
	 * @输入和输出示例：
	 * @思路：
	 */
	@Test
	public void testDynamicSql2(){
		List<DUser> users = session.selectList("dUserMapper.qryUser2", new UserQryCondition("o", 13, 19));
		System.out.println(users);
	}
	
	/**
	 * @Description: 使用数据库的连接模糊匹配
	 * @输入和输出示例：
	 * @思路：
	 */
	@Test
	public void testDynamicSql3(){
		List<DUser> users = session.selectList("dUserMapper.qryUser3", new UserQryCondition("o", 13, 19));
		System.out.println(users);
	}
	
	/**
	 * @Description: 使用bind标签来构造模糊匹配字符串
	 * @输入和输出示例：
	 * @思路：
	 */
	@Test
	public void testDynamicSql4(){
		List<DUser> users = session.selectList("dUserMapper.qryUser4", new UserQryCondition("o", 13, 19));
		System.out.println(users);
	}
	
	/**
	 * @Description: 使用数据库函数
	 * @输入和输出示例：
	 * @思路：
	 */
	@Test
	public void testDynamicsqlUseFunc(){
		List<DUser> users = session.selectList("dUserMapper.qryUser5", new UserQryCondition("a", 13, 19));
		System.out.println(users);
		
	}
}
